I2C Devices এর সাথে Arduino যুক্ত করা

Computer Programming - আরডুইনো (Arduino) I2C এবং SPI Communication (I2C and SPI Communication in Arduino) |
221
221

I2C (Inter-Integrated Circuit) হলো একটি জনপ্রিয় কমিউনিকেশন প্রোটোকল যা Arduino সহ বিভিন্ন মাইক্রোকন্ট্রোলার এবং সেন্সর ডিভাইসের মধ্যে যোগাযোগের জন্য ব্যবহৃত হয়। I2C এর মাধ্যমে একাধিক ডিভাইস একসাথে যুক্ত করা যায় এবং প্রতিটি ডিভাইসের জন্য শুধুমাত্র দুটি তারের প্রয়োজন হয়: SDA (Serial Data) এবং **SCL (Serial Clock)**।

I2C প্রোটোকলের বৈশিষ্ট্য

  • দুটি তার ব্যবহার: SDA এবং SCL।
  • মাস্টার-স্লেভ স্থাপনা: Arduino সাধারণত মাস্টার হিসেবে কাজ করে এবং অন্যান্য ডিভাইস স্লেভ হিসেবে কাজ করে।
  • অ্যাড্রেসিং: প্রতিটি স্লেভ ডিভাইসের জন্য একটি নির্দিষ্ট অ্যাড্রেস থাকে যা কমিউনিকেশনকে নিয়ন্ত্রণ করে।

I2C পিন কনফিগারেশন

Arduino-এর বিভিন্ন মডেলে I2C পিন বিভিন্নভাবে সংযুক্ত করা থাকে:

  • Arduino Uno, Nano: SDA হলো A4 এবং SCL হলো A5।
  • Arduino Mega: SDA হলো 20 এবং SCL হলো 21।
  • Arduino Leonardo: SDA এবং SCL যথাক্রমে ডিডিকেটেড SDA এবং SCL পিনে।

I2C ডিভাইস সংযোগ

  1. SDA পিন সংযোগ করুন: I2C ডিভাইসের SDA পিনকে Arduino-এর SDA পিনের সাথে সংযুক্ত করুন।
  2. SCL পিন সংযোগ করুন: I2C ডিভাইসের SCL পিনকে Arduino-এর SCL পিনের সাথে সংযুক্ত করুন।
  3. VCC এবং GND: I2C ডিভাইসের VCC এবং GND পিনকে Arduino-এর ৫V/৩.৩V (ডিভাইসের প্রয়োজন অনুযায়ী) এবং GND পিনের সাথে সংযুক্ত করুন।

কোড উদাহরণ: I2C LCD ডিসপ্লে যুক্ত করা

Arduino-তে I2C ডিভাইস (যেমন I2C LCD) ব্যবহার করার জন্য সাধারণত Wire লাইব্রেরি ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে I2C LCD ডিসপ্লেতে "Hello, World!" প্রিন্ট করা হয়েছে:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// I2C LCD অ্যাড্রেস এবং কলাম ও রো সেট করা
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  lcd.begin(); // LCD শুরু করা
  lcd.backlight(); // ব্যাকলাইট চালু করা

  lcd.setCursor(0, 0); // প্রথম লাইনে কার্সর সেট করা
  lcd.print("Hello, World!"); // মেসেজ প্রিন্ট করা
}

void loop() {
  // কিছু করা হচ্ছে না, লুপ খালি রাখা হয়েছে
}

কোড ব্যাখ্যা

  • #include <Wire.h>: I2C কমিউনিকেশন চালানোর জন্য Wire লাইব্রেরি অন্তর্ভুক্ত করা।
  • #include <LiquidCrystal_I2C.h>: I2C LCD এর জন্য LCD লাইব্রেরি অন্তর্ভুক্ত করা।
  • lcd.begin(): I2C LCD ডিসপ্লে শুরু করা।
  • lcd.print(): LCD ডিসপ্লেতে মেসেজ প্রিন্ট করা।
  • lcd.backlight(): LCD এর ব্যাকলাইট চালু করা।

I2C অ্যাড্রেস খুঁজে বের করা

Arduino-এর সাথে I2C ডিভাইস সংযুক্ত করার সময় ডিভাইসের সঠিক I2C অ্যাড্রেস জানাটা গুরুত্বপূর্ণ। অ্যাড্রেস খুঁজে বের করার জন্য একটি I2C স্ক্যানার কোড ব্যবহার করা যায়:

I2C স্ক্যানার কোড:

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(9600);
  Serial.println("I2C Scanner");

  for (byte address = 1; address < 127; address++) {
    Wire.beginTransmission(address);
    if (Wire.endTransmission() == 0) {
      Serial.print("I2C device found at address 0x");
      Serial.println(address, HEX);
    }
    delay(5);
  }
  Serial.println("Scan completed");
}

void loop() {
  // কিছু করা হবে না
}

ব্যবহারিক টিপস

  • পুল-আপ রেজিস্টর: I2C লাইনের SDA এবং SCL পিনে ৪.৭কΩ বা ১০কΩ পুল-আপ রেজিস্টর ব্যবহার করা যেতে পারে।
  • সংযোগ পরীক্ষা করুন: ভুল সংযোগ এড়াতে সার্কিট চেক করে নিন।
  • অ্যাড্রেস নিশ্চিত করুন: প্রতিটি I2C ডিভাইসের একটি ইউনিক অ্যাড্রেস থাকে, যা স্ক্যানার কোডের মাধ্যমে খুঁজে বের করা যেতে পারে।

সম্ভাব্য সমস্যা ও সমাধান

  • ডিভাইস সনাক্ত না হলে: চেক করুন ডিভাইসের অ্যাড্রেস সঠিকভাবে কোডে উল্লেখ আছে কি না।
  • পাওয়ার সমস্যা: ডিভাইস সঠিক ভোল্টেজ পেয়েছে কি না নিশ্চিত করুন।
  • বাউড রেট মিলানো: Serial Monitor-এর বাউড রেট কোডে উল্লেখিত বাউড রেটের সাথে মিলানো হয়েছে কি না তা নিশ্চিত করুন।

Arduino এবং I2C ডিভাইসের মধ্যে যোগাযোগ স্থাপন করা সহজ এবং কার্যকর। এর মাধ্যমে আপনি বিভিন্ন ধরনের সেন্সর, ডিসপ্লে, এবং অন্যান্য ডিভাইস সহজেই যুক্ত করতে এবং ব্যবহার করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion